﻿//#pragma once
//#include "afxdialogex.h"
// CShapeDlg 对话框

//class CShapeDlg : public CDialogEx
//{
//	DECLARE_DYNAMIC(CShapeDlg)
//
//public:
//	CShapeDlg(CWnd* pParent = nullptr);   // 标准构造函数
//	virtual ~CShapeDlg();
//
//// 对话框数据
//#ifdef AFX_DESIGN_TIME
//	enum { IDD = IDD_SHAPE_DLG };
//#endif
//
//protected:
//	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持
//
//	DECLARE_MESSAGE_MAP()
//public:
//	afx_msg void OnBnClickedOk();
//};


#pragma once
#include "afxwin.h"
#include "afxcmn.h"//各种Windows通用控件的封装类
#include "Color.h" // 自定义颜色按钮控件的头文件

// CShapeDlg dialog
class CShapeDlg : public CDialogEx
{
    DECLARE_DYNAMIC(CShapeDlg);
    // Construction
public:
   // CShapeDlg(CWnd* pParent = nullptr);    // standard constructor
    CShapeDlg(CShape* cur_pShape, CWnd* pParent = nullptr);
    ~CShapeDlg();
    // Dialog Data
#ifdef AFX_DESIGN_TIME
    enum { IDD = IDD_SHAPE_DLG };
#endif

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

    // Implementation
protected:
    HICON m_hIcon;

    // Generated message map functions
    BOOL OnInitDialog();
    DECLARE_MESSAGE_MAP()

public:
    afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
    afx_msg void OnLbnSelchangeListPenT();
    afx_msg void OnLbnSelchangeListBrushT();
    afx_msg void OnCbnSelchangeCombo1();
    afx_msg void OnBnClickedOk();
    afx_msg void OnBnClickedCancel();
    afx_msg void OnBnClickedButtonColor1();
    afx_msg void OnBnClickedButtonColor2();

    // 成员变量
    int m_x;
    int m_y;
    int m_w;
    int m_h;
    int m_pen_type;
    int m_pen_width;
    CString m_text;
    CString m_strType;
    COLORREF m_pen_color; // 用于存储画笔颜色
    COLORREF m_brush_color; // 用于存储画刷颜色
    int m_brush_type;
    //int m_type; // 内部处理形状类型的整数表示
    ElementType m_Type;
    // 控件成员变量
    CListBox m_lstName1;
    CListBox m_lstName2;
    CComboBox m_cmbType;
    CMFCColorButton m_penColorBtn;//颜色按钮控件
    CMFCColorButton m_brushColorBtn;
protected:
    // 对话框类内部维护的图元基类指针，在调用GetCurShape函数之后将会指向当前形状类型的图元对象
    CShape* cur_pShape;
    // 对话框内部用来为维护每种形状类型的图元对象的指针数组
    CShape* pShapes[SHAPE_TYPE_COUNT]{ NULL };

};
